1. Field
The following description relates to a component-based software product manager system and method, and more particularly, to a software product manager system and method in which a software product line (SPL) is operated based on a component model.
2. Description of Related Art
Software products used to be considered simply as auxiliary parts for the functions of hardware devices in the field of electronic appliances, but are now considered elements that implement the main functions of hardware devices. Due to the recent trend to diversify the functions of a line of products, the importance of software products has become comparable to that of hardware products.
In the field of electronic appliances, software systems are often designed to include common components for the purpose of operating various types of devices. Because a line of products may be designed to provide different functions, it is necessary for software developers not only to develop various software components and also to effectively manage software components to improve the efficiency of the development of software products.
In addition, it is desirable to reuse software components by storing the software components in a repository or a library set. Also it is desirable to develop a software development system such as a software product line (SPL) by reflecting the connections between various components and the variability between product types using the architecture of a software platform.
For example, SPL indicates a system for managing features that are commonly shared throughout a certain market or between a certain line of products, and developing various products based on the variable attributes. Research has been conducted on the application of SPL not only to process management for hardware products but also to software, for example, software based on Component-Based Software Development (CBSD).
A software product includes a combination of components that are selected from a software platform having common components and variable components, based on certain requirements. Thus, various types of software products may share common elements and may be classified into the same product group. Accordingly, SPL may be interpreted as a system for managing and configuring software components and for developing various products based on a software product.
A software platform includes common components that may be applied to a group of products and variable components that are selectively applied to the group of products. Components are selected from a software platform based on predetermined product settings. Additional development processes are performed using the selected components, thereby producing new products and expanding product lines. The new products and the expanded product lines may be used to expand the software platform.
To establish a system capable of operating the SPL, software asset list management, mutual dependency management, and variable point management must be performed. Also, a tool for supporting these management processes may be used.
In general, developing a software product includes representing the architecture of a software system based on a Unified Modeling Language (UML) and describing the logic that implements the software system architecture.
UML refers to a software modeling standard adopted in November 1997 by the Object Management Group (OMG) for the purpose of expressing object-oriented analysis and design decisions. Using UML, it is possible to mediate disagreements that may arise between software developers during the analysis of requirements, the design of a system, and/or the implementation of a system.
Because UML provides an effective modeling tool and has a logical system of notation with a relatively few inconsistencies, it is possible to facilitate communication between software developers and the detection of modeling structures that are missing or inconsistent. In addition, UML may be used regardless of the scale of a system to be developed.